/**
 * 用于(项目/产品)各自单独自定义的js工具类
 **/
var mytools = {};

/**
 * 清空数据，按照样式清空；
 * 1）按照form表单Id清空：id参数#开头
 * 2）按照form表单class样式清空：id参数.开头
 */
mytools.cleanData=function(id){
	${r'$(id)'}.find(".clean").val("");
	${r'$(id)'}.find("IMG").each(function(){
		${r'$(this)'}.attr("src",strUtil.doNull($(this).attr("data-def"), ctx+"/images/def.jpg"));
		//${r'$(this)'}.next().text("选择主图");
		${r'$(this)'}.siblings("label").eq(2).text("");
		${r'$(this)'}.siblings("a").text("");
	});
}

/**
 * 清空校验规则提示信息，按照样式清空；
 * 1）按照form表单Id清空：id参数#开头
 * 2）按照form表单class样式清空：id参数.开头
 */
mytools.cleanValidate=function(id){
	var validate = $(id).data('bootstrapValidator').validate();
	validate.resetForm();
}
/**
 * 关闭模态窗口
 */
mytools.closeModal=function(id){
	${r'$('}'#'+id).modal('hide');
}
/**
 * 封装的pjax跳转方法1
 */
mytools.pjax=function(url,container,fragment){
	var defcon = ".content-wrapper";
	var a=defcon;
	var b=defcon;
	if(container!=undefined &&container!=null && container!=''){
		a = container;
	}
	if(fragment!=undefined &&fragment!=null && fragment!=''){
		b = fragment;
	}
	//alert(url+"  "+a+"  "+b);
	 $.pjax({  
         url: url,  
         container: a,  
         fragment: b,
         cache: false,
         //maxCacheLength:0,
         timeout: 8000
       })
}

/**
 * 封装的load跳转方法 常用按钮跳转
 */
mytools.load=function(url){
	var histClick = clickMenu;
	$.ajaxSetup ({cache: false});
	$(".content-wrapper").load(url+" .content-wrapper>",function(resultData){
		 $result = $(resultData);
        $result.find("script").appendTo(".content-wrapper");//保证子页面的js内容能被引入进来
        clickMenu = histClick;
        showClickMenu();
	});
}

/**
 * 移除数组中指定元素
 * @param arr 操作数组
 * @param val 移除元素
 * @returns {number}
 */
mytools.remove = function(arr,val) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] == val){
            arr.splice(i, 1);
        }
    }
}

/**
 * 站点以端口方式访问时，需要替换top连接地址
 * @param thisObj
 * @param findStr
 * @param newStr
 */
mytools.portRequestReplaceLink=function(thisObj) {
    if(window.location.port){
        //  console.log("请求方式：","因IP+端口方式，需top.html的a标签href地址内["+findStr+"] 替换为 ["+newStr+"]");
		var newStr = '/wcm/'+siteCode+'/';
		var findStr = '../../../';
        $("[data-repla-port-link='true']").find("a[href^='"+findStr+"']").each(function () {
            var regExpB=new RegExp(findStr,"g");
            $(this).attr("href",$(this).attr("href").replace(regExpB,newStr));
            // $(this).attr("href",$(this).attr("href").replace(/\..\/..\//g,"\/wcm\/ttwl\/"));
            // console.log($(this).text()+"-new-->",$(this).attr("href"));
        });
        $("[data-repla-port-link='true']").find("img[src^='"+findStr+"']").each(function () {
            var regExpB=new RegExp(findStr,"g");
            // console.log("old-->",$(this).attr("src"));
            $(this).attr("src",$(this).attr("src").replace(regExpB,newStr));
            // console.log("new-->",$(this).attr("src"));
        });
    }
}
/**
 判断form表单中某字段输入值是否已重复（调用后台）
 1、需要判重的文本框添加下面事件和属性
 onblur="mytools.validFieldRepeat(this)"
 data-validate-repeat-message="此登录账号已存在，请更换！"  //发现重复提示的文字
 2、修改时文本框需多配置下面这个属性。其值是editForm表单存业务主键的隐藏域name值
 data-validate-repeat-selfname="ssInsurPro.w_infoId"
 */
mytools.validFieldRepeat=function(obj){
    var thisObj = $(obj);
    var thisVal = thisObj.val();
    if(strUtil.isNull(thisVal)){
        return;
    }
    var fieldName = thisObj.attr("name");
    if(strUtil.isNull(fieldName)||fieldName.indexOf('.')<0){
        layer.msg('name属性配置不合法');
        return;
    }
    var formId = thisObj.parents("form").eq(0).attr("id");//获取当前元素所在父层级中的就近的formId
    if(strUtil.isNull(formId)<0){
        layer.msg(fieldName+'元素必须存放form表单内！');
        return;
    }
    console.log('formId->'+formId);
    var formObj =  $("#"+formId);
    var form_pageName = formObj.find("input[name='pageName']").val();
    var form_formName = formObj.find("input[name='formName']").val();
    var isEdit = false;//标记是否是修改表单
    if(form_formName=='editForm'){
        isEdit = true;
    }
    var fieldArr = fieldName.split(".");
    var objName = fieldArr[0];
    var condisStr = objName+".w_"+fieldArr[1];
    var pageName = strUtil.doNull(thisObj.attr("data-validate-repeat-page-name"),form_pageName);
    var conditionGuGing = strUtil.doNull(thisObj.attr("data-validate-repeat-condition"),'');//固定查询条件
    var formName = strUtil.doNull(thisObj.attr("data-validate-repeat-form-name"),'searchForm');
    var objMsg = strUtil.doNull(thisObj.attr("data-validate-repeat-message"),"此项输入的值已重复，请更换！");//重复后提示内容
    var isClean = strUtil.doNull(thisObj.attr("data-validate-repeat-clean"),'true');//重复后是否清空原值，默认是
    console.log('valid.req',pageName+'='+pageName+'&'+formName+'='+formName+'&'+condisStr+'='+thisVal);
    var selfInput = thisObj.attr("data-validate-repeat-selfname");
    var editRemoveId_name = '',editRemoveId_val='';
    if(isEdit){
        if(strUtil.isNull(selfInput)){
            layer.msg(formId+'下'+fieldName+'必须设置属性：data-validate-repeat-selfname');
            return;
        }
        var selfInputObj = formObj.find("input[name='"+selfInput+"']");
        if(!selfInputObj || strUtil.isNull(selfInputObj.val())){
            layer.msg(formId+"下"+fieldName+"input[name='"+selfInput+"']元素不存在或值为空！");
            return;
        }
        editRemoveId_name =selfInput.split('w_')[1];
        editRemoveId_val = selfInputObj.val();
        console.log('valid.type','edit->'+editRemoveId_name+'='+editRemoveId_val);
    }else{
        console.log('valid.type','add');
    }
    var index_load = layer.load(1, {shade: false});
    var paramLoadData = {};
    paramLoadData['pageName']=pageName;
    paramLoadData['formName']=formName;
    paramLoadData[condisStr]=thisVal;
    if(!strUtil.isNull(conditionGuGing)){
        var gudingArray=conditionGuGing.split("&");
        for (var w in gudingArray){
            var p_key = gudingArray[w].split("=")[0];
            var p_val = gudingArray[w].split("=")[1];
            paramLoadData[p_key]=p_val;
        }
    }
    $.getJSON(common_list_url,paramLoadData, function(myData2){
        console.log('valid.res',myData2);
        layer.close(index_load);
        if(myData2.total>0){
            if(isEdit){
                //修改情况下，排除自己判断（自己改自己）
                var oldInfoIdVal = myData2.rows[0][objName][editRemoveId_name];
                if(editRemoveId_val==oldInfoIdVal){
                    return;
                }
            }
            console.log('valid.msg'+objMsg);
            layer.msg(objMsg);
            if(isClean=='true'){
                thisObj.val('');
                formObj.data('bootstrapValidator').updateStatus(fieldName,'NOT_VALIDATED',null).validateField(fieldName);
            }
        }
    });
}

function isNull(str){
    if(null==str||undefined==str){
        return true;
    }
    if(""==str||"null"==str||"undefined"==str||JSON.stringify(str).trim().length==0){
        return true;
    }
    return false;
}
function doNull(str, defVal){
    if(isNull(str)){
        return defVal;
    }
    return str;
}
//设置页面token
mytools.setToken=function(elId){
    $.ajax({
        type:'get',
        url:ctx+'/sendPage/token?token=true',
        dataType:'text',
        success: function(myData){
            console.log('token->',myData);
            if(strUtil.isNull(elId)){
                $('.formToken').val(myData);
            }else{
                $(elId).find('.formToken').val(myData);
            }
        }
    });
}